package com.hnd.springframerwork.beans.factory;

import cn.hutool.core.bean.BeanException;
import com.hnd.springframerwork.beans.factory.config.AutowireCapableBeanFactory;
import com.hnd.springframerwork.beans.factory.config.BeanDefinition;
import com.hnd.springframerwork.beans.factory.config.BeanPostProcessor;
import com.hnd.springframerwork.beans.factory.config.ConfigurableBeanFactory;
import com.hnd.springframerwork.beans.factory.support.AbstractAutowireCapableBeanFactory;

public interface ConfigurableListableBeanFactory extends ListableBeanFactory, AutowireCapableBeanFactory, ConfigurableBeanFactory {
    BeanDefinition getBeanDefinition(String beanName) throws BeanException;

    void preInstantiateSingletons() throws BeanException;

    @Override
    void addBeanPostProcessor(BeanPostProcessor beanPostProcessor);
}
